package com.hzw.saas.web.admin.user.param;

import java.io.Serializable;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;

import com.hzw.saas.api.user.query.UserRightsProp;
import com.hzw.saas.common.util.AccountValidatorUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @author zzl
 * @since 04/04/2021
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel("客户信息更新参数")
public class CustomerUpdateParam extends UserRightsProp implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "客户编号", position = 1, required = true)
    @NotBlank(message = "客户编号不可为空")
    private String customerNo;

    @ApiModelProperty(value = "客户姓名", position = 2)
    private String customerName;

    @ApiModelProperty(value = "会员权益级别", position = 4)
    private String customerLevel;

    @ApiModelProperty(value = "地区(省/市)", position = 5)
    private String region;

    @ApiModelProperty(value = "详细地址", position = 6)
    private String address;

    @ApiModelProperty(value = "邮编", position = 6)
    private String postcode;

    @ApiModelProperty(value = "机构(学校/企业)", position = 7)
    private String organ;

    @ApiModelProperty(value = "院系/部门", position = 8)
    private String department;

    @ApiModelProperty(value = "职务", position = 9)
    private String jobTitle;

    @ApiModelProperty(value = "客户手机号码", position = 10)
    @Pattern(regexp = AccountValidatorUtil.REGEX_MOBILE_OR_BLANK, message = "手机号码格式不正确")
    private String phoneNo;

    @ApiModelProperty(value = "客户邮箱", position = 11)
    @Pattern(regexp = AccountValidatorUtil.REGEX_EMAIL_OR_BLANK, message = "邮箱格式不正确")
    private String email;

    @ApiModelProperty(value = "关注热点", position = 12)
    private String focus;

    @ApiModelProperty(value = "发票信息", position = 15)
    private String invoice;

    @ApiModelProperty(value = "客户专属/推广销售集合", position = 16)
    private List<StaffCustomerRefParam> customerRefParams;

}
